package top.xia17.plugins.fast.auth.autoconfiguraion;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
import top.xia17.plugins.fast.auth.model.AuthConstant;
import top.xia17.plugins.fast.auth.register.RegisterProperties;

/**
 * 认证授权相关的配置
 *
 * @author xia17
 * @date 2022/2/18
 */
@Configuration
@ConfigurationProperties("xia17fast.auth")
@Data
public class AuthProperties {

    /** 支持的登录方式 */
    private String[] loginSupportMethods = new String[] {AuthConstant.USERNAME_LOGIN_METHOD};

    /**
     * 登录时的图形验证码是否启用
     */
    private Boolean loginCaptchaEnabled = false;

    /**
     * 使用邮箱登录时的消息模板
     */
    private String loginCodeEmailTemplate;

    /**
     * 使用邮箱登录时的邮件主题名
     */
    private String loginCodeEmailSubject = "xia17fast";

    /**
     * 登录码有效时间 单位分钟
     */
    private Integer loginCodeEffectiveTime = 10;

    /**
     * 是否开启登录码的发送限制
     */
    private Boolean loginCodeLimitEnabled = false;

    /**
     * 登录验证码限制标记
     * IP: 根据请求的IP来限制
     * TO: 根据发送的地址来限制
     */
    private String loginCodeLimitTag = "TO";

    /**
     * 登录验证码的限制时间 , 单位秒
     */
    private Integer loginCodeLimitTime = 60;

    /**
     * 注册相关的配置信息
     */
    private RegisterProperties register = new RegisterProperties();

}
